package com.cruise.game.model.vo.common;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 登录结果VO
 * 
 * @author cruise
 * @date 2025-02-28
 */
@Data
public class LoginResultVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * JWT令牌
     */
    private String token;

    /**
     * 用户信息
     */
    private UserInfoVO user;

    /**
     * 构造函数
     */
    public LoginResultVO() {
    }

    /**
     * 构造函数
     *
     * @param token JWT令牌
     * @param user 用户信息
     */
    public LoginResultVO(String token, UserInfoVO user) {
        this.token = token;
        this.user = user;
    }

    /**
     * 用户信息VO
     */
    @Data
    public static class UserInfoVO implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 用户ID
         */
        private Long id;

        /**
         * 用户昵称
         */
        private String nickname;

        /**
         * 用户头像
         */
        private String avatar;

        /**
         * 用户角色
         */
        private String role;

        /**
         * 账户余额
         */
        private BigDecimal balance;
    }
}
